In storage array systems, host accessible volumes or logical unit numbers (referred to herein as “LUNs”) are each formed from a collection of sub-LUNs. Each sub-LUN may be owned (or hosted) by a storage controller of the storage array. Ownership of various sub-LUNs that make up a LUN may be distributed across multiple different storage controllers of a storage array. When a storage controller owns a sub-LUN, the storage controller is responsible for data operations, such as read/write and input/output operations, to and from a physical or virtual storage device having physical storage that is or may be allocated to the sub-LUN for storage of data the (virtual or logical) sub-LUN. The sub-LUN serves as a logical pointer to one or more storage devices where data is stored. A storage controller handles data access to physical storage media for a sub-LUN. The physical storage media may be comprised of any suitable physical storage media such as hard disk drive(s) (HDD(s)), solid state drive(s) (SSD(s)) such as flash drives for example, or other storage devices, or a combination thereof.
A distributed storage system may include multiple storage arrays where the LUNs and the data in the storage arrays are kept in sync or are remotely copied from one storage array to another storage array. Often, however, sub-LUNs may be misaligned among storage controllers of the different storage arrays. For example, a single storage controller in a first storage array may be responsible for data operations for two or more sub-LUNs. In a remote second storage array, these sub-LUNs may be distributed among two or more storage controllers.
This sub-LUN misalignment among the storage controllers of first and second storage arrays may cause data transfer inefficiencies, especially in the case of remote copy operations of data from one storage array to another storage array. A storage controller may need to proxy data operation requests from one controller to another controller of a storage array. The proxying of data operation requests may be performed via controller inter-links and may result in a negative performance impact to a storage array due to limited inter-controller bandwidth, and/or the latency imposed by the time needed to process the data operation request from one storage controller to another storage controller within a storage array.